package dao;

import hbt.HibernateUtil;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import entity.Club;
import entity.Jugador;
import entity.Partido;

public class HibernateDao {

	private static SessionFactory sf;
	private static HibernateDao instancia;

	@SuppressWarnings("unchecked")
	public List<Club> VerClubes() {
		org.hibernate.classic.Session s =sf.openSession();
		s.beginTransaction();		
		List<Club> clubes = s.createQuery("from Club").list();
		s.close();
		return clubes;
	}

	@SuppressWarnings("unchecked")
	public List<Partido> VerPartidos(String idClub) {
		Session s = sf.openSession();
		s.beginTransaction();
		List<Partido> partidos = s.createQuery("from Partido P where (:id =P.Id_ClubL) or (:id =P.Id_ClubV")
				.setParameter("id", idClub).list();
		s.close();

		return partidos;
	}

	@SuppressWarnings("unchecked")
	public List<Jugador> VerJugadores(String idClub) {
		Session s = sf.openSession();
		s.beginTransaction();
		List<Jugador> jugadores = s.createQuery("from Jugador J where J.Id_Club= :id ")
				.setParameter("id",idClub).list();
		s.close();

		return jugadores;
	}

	public static HibernateDao getInstancia() {
		if (instancia == null) {
			instancia = new HibernateDao();
			sf = HibernateUtil.getInstancia();
		}
		return instancia;
	}
}
